Passed
Pull Request — master (#87)
by Mathieu
01:49
created

UploadFileCommandHandler.execute   A

Complexity

Conditions 1

Size

Total Lines 10
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 10
rs 9.95
c 0
b 0
f 0
cc 1
1
import {CommandHandler} from '@nestjs/cqrs';
2
import {Inject} from '@nestjs/common';
3
import {UploadFileCommand} from './UploadFileCommand';
4
import {IFileStorage} from 'src/Application/IFileStorage';
5
import {IFileRepository} from 'src/Domain/File/Repository/IFileRepository';
6
import {File} from 'src/Domain/File/File.entity';
7
8
@CommandHandler(UploadFileCommand)
9
export class UploadFileCommandHandler {
10
  constructor(
11
    @Inject('IFileStorage')
12
    public readonly fileStorage: IFileStorage,
13
    @Inject('IFileRepository')
14
    public readonly fileRepository: IFileRepository
15
  ) {}
16
17
  public async execute(command: UploadFileCommand): Promise<string> {
18
    const {uploadedFile} = command;
19
20
    const fileName = await this.fileStorage.upload(uploadedFile);
21
    const file = await this.fileRepository.save(
22
      new File(fileName, uploadedFile.size, uploadedFile.mimetype)
23
    );
24
25
    return file.getId();
26
  }
27
}
28